package com.jiuli_travel.blog_service.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.jiuli_travel.blog_service.model.dto.blog.BlogInsertRequest;
import com.jiuli_travel.blog_service.model.dto.blog.BlogQueryRequest;
import com.jiuli_travel.blog_service.model.dto.blog.HandleCountChangeRequest;
import com.jiuli_travel.blog_service.model.entity.Blog;
import com.jiuli_travel.blog_service.model.vo.BlogVO;
import com.jiuli_travel.utils.PageDTO;
import com.jiuli_travel.utils.Result;

import java.io.IOException;
import java.util.List;

public interface IBlogService extends IService<Blog> {
    /**
     *  条件分页查询博客的信息
     */
    Result selectBlogsByPage(BlogQueryRequest blogQueryRequest);

    /**
     * 发布个人 blog （user）
     */
    void publishBlog(BlogInsertRequest blogInsertRequest);

    /**
     * 删除个人 blog （根据 blogId） （user/admin）
     */
    void batchDelBlog(List<Long> blogIds);

    /**
     * searchBlogs
     */
    Result searchBlogs(String searchText, Integer from, Integer size) throws IOException;

    /**
     * 点赞 LIKED
     */
    void handelLikedCountChange(Long blogId);

    /**
     * 收藏 COLLECTION
     */
    void handelCollectCountChange(Long blogId);

    /**
     * 浏览 VIEW
     */
    void handelViewCountChange(Long blogId);


    // 考虑一个点就是是否需要分页，这里应该不用，因为分页本身就是消耗性能的，而这类数据量较小
    /**
     * 获取用户自己发布的blog
     */
    Result getPublishBlogsByUserId(Long userId);

    /**
     * 获取用户收藏的blog
     */
    Result getCollectBlogsByUserId(Long userId);

    /**
     * 获取用户赞过的blog
     */
    Result getLikedBlogsByUserId(Long userId);

}



















